package cn.yuanqiao.archive.danganzhengli.mapper;

import cn.yuanqiao.archive.danganzhengli.domain.ArchivePack;
import cn.yuanqiao.archive.danganzhengli.domain.PackDetail;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;


/**
 * 打包日志Mapper接口
 * 
 * @author xy
 * @date 2024-09-13
 */
public interface ArchivePackMapper 
{
    /**
     * 查询打包日志
     * 
     * @param id 打包日志主键
     * @return 打包日志
     */
    public ArchivePack selectArchivePackById(@Param("id") Long id,@Param("tableName") String tableName,@Param("tenantCode") String tenantCode);

    /**
     * 查询打包日志列表
     * 
     * @param archivePack 打包日志
     * @return 打包日志集合
     */
    public List<ArchivePack> selectArchivePackList(@Param("archivePack") ArchivePack archivePack,@Param("tenantCode") String tenantCode);

    /**
     * 新增打包日志
     * 
     * @param archivePack 打包日志
     * @return 结果
     */
    public int insertArchivePack(ArchivePack archivePack);

    /**
     * 修改打包日志
     * 
     * @param archivePack 打包日志
     * @return 结果
     */
    public int updateArchivePack(ArchivePack archivePack);

    /**
     * 删除打包日志
     * 
     * @param id 打包日志主键
     * @return 结果
     */
    public int deleteArchivePackById(Long id);

    /**
     * 批量删除打包日志
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArchivePackByIds(Long[] ids);

    /**
     * 批量删除打包档案详情
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePackDetailByPIDs(Long[] ids);
    
    /**
     * 批量新增打包档案详情
     * 
     * @param packDetailList 打包档案详情列表
     * @return 结果
     */
    public int batchPackDetail(@Param("list")List<PackDetail> packDetailList,@Param("tenantCode")String tenantCode);
    

    /**
     * 通过打包日志主键删除打包档案详情信息
     * 
     * @param id 打包日志ID
     * @return 结果
     */
    public int deletePackDetailByPID(Long id);

    void editArchivePack(@Param("id") Long id, @Param("state")String state, @Param("endTime")Date endTime,@Param("tenantCode")String tenantCode,@Param("num") Integer num);

    List<PackDetail> selectDetailList(@Param("pId") Long pId,@Param("daTable") String daTable,@Param("tableName") String tableName);

    void updateNum(@Param("id") Long id, @Param("tableName") String tableName, @Param("num") Integer num);
}
